package model.persistence.vo;

import java.io.IOException;
import java.util.Set;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;

@Entity
public class Sala extends JMESerializable {
    
    private int id_sala;
    
    private String nome_cinema;
    
    private String nome_sala;
    
    private Filme filme;
    
    private Cinema cinema;
    
    private Set<Sessao> sessao;
    
    @ManyToOne
    @JoinColumn(name = "id_filme")
    public Filme getFilme() {
        return filme;
    }
    
    public void setFilme(Filme filme) {
        this.filme = filme;
    }
    
    @Id
    public int getId_sala() {
        return id_sala;
    }
    
    public void setId_sala(int id_sala) {
        this.id_sala = id_sala;
    }
    
    public String getNome_cinema() {
        return nome_cinema;
    }
    
    public void setNome_cinema(String nome_cinema) {        
        this.nome_cinema = nome_cinema;
    }
    
    public String getNome_sala() {        
        return nome_sala;
    }
    
    public void setNome_sala(String nome_sala) {
        if(nome_sala == null) {
            nome_sala = "";
        }
        
        this.nome_sala = nome_sala;
    }
    
    @OneToMany(mappedBy = "sala")
    public Set<Sessao> getSessao() {
        return sessao;
    }
    
    public void setSessao(Set<Sessao> sessao) {
        this.sessao = sessao;
    }
    
    @ManyToOne
    @JoinColumn(name = "id_cinema")
    public Cinema getCinema() {
        return cinema;
    }
    
    public void setCinema(Cinema cinema) {
        this.cinema = cinema;
    }
    
    public byte[] serialize() throws IOException, InterruptedException {
        initSerialize();
        dataOut.writeInt(id_sala);
        dataOut.writeUTF(nome_sala);
        
        return binayOut.toByteArray();
    }
    
    public void unserialize(byte[] data) throws IOException, InterruptedException {
    }
}